export const metadata = { sidebar_position: 90, title: "🟢 提示常規結構" };

# 🟢 提示常規結構

<div style={{ textAlign: "center" }}>
  <Image
    src={"/docs/assets/basics/formal_prompt.svg"}
    width={564}
    height={1054}
    style={{
      width: "800px",
      height: "300px",
      verticalAlign: "top",
      margin: "auto",
    }}
  />
</div>

<Takeaways>- 了解構建一個好的提示的基本元素</Takeaways>

我們現在已經涵蓋了多種型別的提示，以及如何組合它們的方法。本篇教程將為您提供術語來解釋不同型別的提示。雖然已經有方法來形式化提示工程中的術語(@white2023prompt)，但這個領域正在不斷變化，因此我們將為您提供一個常規化的基礎結構。

## 提示的組成部分

以下是在一個提示中將時常看到的一些組成部分：

- 角色
- 指令/任務
- 上下文
- 範例(few shot)
- 問題

在之前的教程中，我們已經涵蓋了角色、指令和範例。問題則是簡單的單一問題！（例如，“法國的首都是什麼？”）。上下文則是任何與你想要模型作出的回應有關的資訊。

並不是每個提示都包含所有這些組成部分，並且當某些部分出現時，它們之間也沒有標準的順序。例如，以下兩個提示，每個提示包含一個角色、一個說明和一個上下文，雖然描述順序有差異，但是我們期望他們做的事情是一樣的：

```text
你是一名醫生。請閱讀這份病史並預測患者的風險：

2000年1月1日：打籃球時右臂骨折。戴上石膏進行治療。
2010年2月15日：被診斷為高血壓。開了利辛普利的處方。
2015年9月10日：患上肺炎。用抗生素治療並完全康復。
2022年3月1日：在一次車禍中患上腦震盪。被送進醫院接受24小時的監護。
```

```text
2000年1月1日：打籃球時右臂骨折。戴上石膏進行治療。
2010年2月15日：被診斷為高血壓。開了利辛普利的處方。
2015年9月10日：患上肺炎。用抗生素治療並完全康復。
2022年3月1日：在一次車禍中患上腦震盪。被送進醫院接受24小時的監護。

你是一名醫生。請閱讀這份病史並預測患者的風險：
```

然而，第二個提示其實更好，原因是指令是提示的最後一部分，這時候語言模型將更傾向於按指令執行而不是進一步輸出上下文相關的資訊。例如，如果給定第一個提示，語言模型可能會回覆：`2022年3月15日:與神經科醫生預約隨訪，以評估腦震盪恢復進展`，而不是直接預測患者的風險。

## 結論

了解提示的結構和組成元素對於有效利用語言模型至關重要。提示的關鍵部分包括角色、指令或任務、問題、上下文和範例。並非所有提示都會包含所有這些元素，而且它們的順序可能會有所不同。但是，通常最好將指令放在最後，以確保模型專注於執行任務而不是擴展上下文。隨著提示工程領域的不斷發展，這些原則為製作有效的提示提供了札實的基礎。
